package 代码记录.Bit48天集训;

import java.util.Scanner;

/**答案已订正
 * 1.最近公共祖先
 * 2.求最大连续bit数
 * @author zx
 * @create 2022-05-03 23:28
 */
public class day_11 {
    /**
     * 若根节点从1开始编号,设父节点的编号为K,则左子树2K,右子树为2K + 1
     思路：满二叉树的子节点与父节点之间的关系为root = child / 2
     利用这个关系,如果a != b,就让其中的较大数除以2,如此循环直到a == b
     即是原来两个数的最近公共祖先
     * @return
     */
    public int getLCA(int a, int b) {
        while(a != b){
            if(a > b){
                a /= 2;
            }else{
                b /= 2;
            }
        }
        return a;
    }

    /**
     * @param args
     */
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        int count = 0;
        int res = 0;
        for(int i = 0;i < 32;i++){
            int temp = number >> i;
            if((temp & 1) == 1){
                count++;
            }else{
                res = Math.max(res,count);
                count = 0;
            }
        }
        System.out.println(res);
    }
}
